class Product < ActiveRecord::Base
  validates_presence_of :title, :description, :image_url
  validates_numericality_of :price

  #保证产品有唯一的标题
  validates_uniqueness_of :title
  #  image URL验证
  #  validates_format_of :image_url,
  #    :with => %r{^http:.+.(gif|jpg|png)$}i,
  #    :message => "must be a URL for a GIF, JPG, or PNG image"

  #验证价格为正数
  protected
  def validate
    errors.add(:price, "价格应该为正数。") if price.nil? ||  price < 0.01
  end

#代码使用了Rails的find()方法。
#:all参数告诉Raisl，我们想匹配给出条件的所有行。
#(以后，条件检查条目的有效性数据。
#它使用MySQL的now()功能来取得当前的日期和时间。)
#我们要求我们的客户它应该有个对列表排序的选择，
#并且我们决定当第一次显示时应首先看到最新的产品，
#所以代码按date_available来降序排列。
  def self.salable_items
    find(:all,
      :conditions => "date_available <= now()",
      :order => "date_available desc")
  end


end
